home *** CD-ROM | disk | FTP | other *** search
/ HPAVC / HPAVC CD-ROM.iso / pc / PNC-ATL1.ZIP / RUMOUR / RUMOUR.PPE (.txt) < prev    next >
Encoding:
PCBoard Programming Language Executable  |  1996-09-10  |  3.8 KB  |  267 lines

  1. ;------------------------------------------------------------------------------
  2. ;                                                   .ss.
  3. ;                                                   `²²'
  4. ;             .,sS$Ss,,s$  .,sS$$$Ss.  .,sS$Ss,,s$ .ss.  .sSs.
  5. ;           .d$$²^°²$$$$'.d$P²°^^²$P'.d$$²^°²$$$$'.$$$' .$$$²Sb,.
  6. ;           $$$'   .$$$' $$$²Sçsµ²' .$$$'   .$$$'.$$$' .$$$'  `$$b.
  7. ;           $$$b,,d$$$' ,$$$b,....,s$$$$b,,d$$$'.$$$;.,$$$'    ;$$$
  8. ;           `²S$$S²²S$$S²°²S$$$$S²°°²S$$$$$$',$$S²°²S$S'.sS$$$P²'
  9. ;                                    .sS²°$$$²²°"'       d²°'
  10. ;                                  .$$²  .$$'
  11. ;                                  $$$.,d$$'
  12. ;                                  `²S$$S²'
  13. ;------------------------------------------------------------------------------
  14. ; P.P.L.X. 2.OO                          (C)1996 - Lone Runner / AEGiS CoRP'96 
  15. ;------------------------------------------------------------------------------
  16. ; PPE 3.1O (Encryption type I) - Analysis ON - Postprocessing ON
  17. ;------------------------------------------------------------------------------
  18.  
  19.     Integer  INTEGER001
  20.     Integer  INTEGER002
  21.     Integer  INTEGER003
  22.     Integer  INTEGER004
  23.     Integer  INTEGER005
  24.     Integer  INTEGER006
  25.     Integer  INTEGER007
  26.     Integer  INTEGER008
  27.     Integer  INTEGER009
  28.     String   STRING001
  29.     String   STRING002
  30.     String   TSTRING003(3)
  31.     String   TSTRING004(3)
  32.     String   STRING005
  33.     String   STRING006
  34.     Declare  Function FUNCTION001() String
  35.     Declare  Procedure PROC001(Integer INTEGER010)
  36.     Declare  Procedure PROC002(Integer INTEGER011, Integer INTEGER012)
  37.  
  38. ;------------------------------------------------------------------------------
  39.  
  40.     If (AnsiOn() == 0) Then
  41.         PrintLn "Error: You can't use this program without ANSI-Emulation"
  42.         Newline
  43.         Wait
  44.         End
  45.     Endif
  46.     FOpen 1, PPEPath() + "RUMOUR.DAT", 2, 0
  47.     FGet 1, INTEGER003
  48.     FClose 1
  49.     INTEGER008 = 6
  50.     INTEGER009 = 14
  51.     INTEGER006 = 20
  52.     INTEGER007 = 15
  53.     GetUser
  54.     TSTRING004(1) = "@X4F         ADD A NEW JUICY RUMOUR        "
  55.     TSTRING004(2) = "@X4F              LIST RUMOURS             "
  56.     TSTRING004(3) = "@X4F              QUIT RUMOURS             "
  57.     TSTRING003(1) = "@X07         Add A New Juicy Rumour        "
  58.     TSTRING003(2) = "@X07              List Rumours             "
  59.     TSTRING003(3) = "@X07              Quit Rumours             "
  60.     StartDisp 1
  61.     DispFile PPEPath() + "RUMOUR1.PCB", 0
  62.     INTEGER001 = 3
  63.     INTEGER004 = 1
  64.     INTEGER005 = INTEGER004
  65.     PROC001(INTEGER001)
  66.     PROC002(INTEGER004, INTEGER005)
  67.     :LABEL001
  68.     STRING001 = FUNCTION001()
  69.     If (((Upper(STRING001) == "UP") || (Upper(STRING001) == "LEFT")) || (Upper(STRING001) == "A")) Then
  70.         INTEGER005 = INTEGER004
  71.         If (INTEGER004 == 1) Then
  72.             INTEGER004 = INTEGER001
  73.         Else
  74.             INTEGER004 = INTEGER004 - 1
  75.         Endif
  76.         PROC002(INTEGER004, INTEGER005)
  77.     ElseIf (((Upper(STRING001) == "DOWN") || (Upper(STRING001) == "RIGHT")) || (Upper(STRING001) == "Z")) Then
  78.         INTEGER005 = INTEGER004
  79.         If (INTEGER004 == INTEGER001) Then
  80.             INTEGER004 = 1
  81.         Else
  82.             INTEGER004 = INTEGER004 + 1
  83.         Endif
  84.         PROC002(INTEGER004, INTEGER005)
  85.     Else
  86.         Select Case (Upper(STRING001))
  87.             Case Chr(27)
  88.                 Print "@X07@CLS@"
  89.                 PrintLn "@X09Rumour PPE @X01-@X09 Add-ON for Atlantis v1.0@X01 - @X09Written by@X01:@X09 Jolly Roger@X07"
  90.                 Newline
  91.                 End
  92.             Case Chr(13)
  93.                 If (INTEGER004 == 1) Then
  94.                     If (INTEGER003 < 200) Then
  95.                         DispFile PPEPath() + "RUMOUR2.PCB", 0
  96.                         AnsiPos INTEGER008, INTEGER009
  97.                         InputStr "_", STRING005, "@X0F", 68, Mask_Ascii(), 0
  98.                         STRING005 = ScrText(INTEGER008, INTEGER009, 68, 1)
  99.                         STRING005 = StripAtx(STRING005)
  100.                         If (Trim(STRING005, " ") <> "") Then
  101.                             FOpen 1, PPEPath() + "RUMOUR.DAT", 2, 0
  102.                             FPut 1, String(INTEGER003 + 1)
  103.                             FClose 1
  104.                             FAppend 1, PPEPath() + "RUMOUR.DAT", 2, 0
  105.                             FPutLn 1, STRING005
  106.                             FPutLn 1, "Entered by: " + U_Name()
  107.                             FClose 1
  108.                         Endif
  109.                         Print "@X07@CLS@"
  110.                         StartDisp 1
  111.                         DispFile PPEPath() + "RUMOUR1.PCB", 0
  112.                         PROC001(INTEGER001)
  113.                         PROC002(INTEGER004, INTEGER005)
  114.                     Endif
  115.                 Endif
  116.                 If (INTEGER004 == 2) Then
  117.                     Print "@X07@CLS@"
  118.                     ResetDisp
  119.                     Print "@PON@"
  120.                     FOpen 1, PPEPath() + "RUMOUR.DAT", 2, 0
  121.                     FGet 1, INTEGER003
  122.                     For INTEGER002 = 1 To INTEGER003
  123.                         FGet 1, STRING002
  124.                         PrintLn "@X08[@X0F" + String(INTEGER002) + "@X08] - @X07" + STRING002
  125.                         FGet 1, STRING002
  126.                     Next
  127.                     FClose 1
  128.                     Newlines 2
  129.                     Wait
  130.                     Print "@POFF@"
  131.                     StartDisp 1
  132.                     DispFile PPEPath() + "RUMOUR1.PCB", 0
  133.                     PROC001(INTEGER001)
  134.                     PROC002(INTEGER004, INTEGER005)
  135.                 Endif
  136.                 If (INTEGER004 == 3) Then
  137.                     Print "@X07@CLS@"
  138.                     PrintLn "@X09Rumour PPE @X01-@X09 Add-ON for Atlantis v1.0@X01 - @X09Written by@X01:@X09 Jolly Roger@X07"
  139.                     Newline
  140.                     End
  141.                 Endif
  142.             Case "HOME"
  143.                 INTEGER005 = INTEGER004
  144.                 INTEGER004 = 1
  145.                 PROC002(INTEGER004, INTEGER005)
  146.             Case "END"
  147.                 INTEGER005 = INTEGER004
  148.                 INTEGER004 = INTEGER001
  149.                 PROC002(INTEGER004, INTEGER005)
  150.             Endif
  151.     End Select
  152.     Goto LABEL001
  153.     End
  154.  
  155. ;------------------------------------------------------------------------------
  156.  
  157.     Function FUNCTION001() String
  158.  
  159.     Integer  INTEGER010
  160.  
  161.     STRING001 = ""
  162.     While (STRING001 == "") Do
  163.         STRING001 = Inkey()
  164.         If (STRING001 == "BADKEY") STRING001 = ""
  165.     EndWhile
  166.     FUNCTION001 = STRING001
  167.  
  168.     EndFunc
  169.  
  170.  
  171. ;------------------------------------------------------------------------------
  172.  
  173.     Procedure PROC001(Integer INTEGER010)
  174.  
  175.     For INTEGER002 = 1 To INTEGER010
  176.         AnsiPos INTEGER006, INTEGER007 + INTEGER002 - 1
  177.         Print TSTRING003(INTEGER002)
  178.     Next
  179.  
  180.     EndProc
  181.  
  182.  
  183. ;------------------------------------------------------------------------------
  184.  
  185.     Procedure PROC002(Integer INTEGER011, Integer INTEGER012)
  186.  
  187.     AnsiPos INTEGER006, INTEGER007 + INTEGER012 - 1
  188.     Print TSTRING003(INTEGER012)
  189.     AnsiPos INTEGER006, INTEGER007 + INTEGER011 - 1
  190.     Print TSTRING004(INTEGER011)
  191.     AnsiPos INTEGER006, INTEGER007 + INTEGER011 - 1
  192.  
  193.     EndProc
  194.  
  195.  
  196. ;------------------------------------------------------------------------------
  197. ;
  198. ; Usage report (before postprocessing)
  199. ;
  200. ; ■ Statements used :
  201. ;
  202. ;    4       End
  203. ;    2       Wait
  204. ;    29      Goto 
  205. ;    34      Let 
  206. ;    9       Print 
  207. ;    4       PrintLn 
  208. ;    18      If 
  209. ;    4       DispFile 
  210. ;    3       FOpen 
  211. ;    1       FAppend 
  212. ;    4       FClose 
  213. ;    4       FGet 
  214. ;    1       FPut 
  215. ;    2       FPutLn 
  216. ;    1       ResetDisp
  217. ;    3       StartDisp 
  218. ;    1       GetUser
  219. ;    1       InputStr 
  220. ;    3       Newline
  221. ;    1       Newlines 
  222. ;    5       AnsiPos 
  223. ;    2       EndProc
  224. ;    1       EndFunc
  225. ;
  226. ;
  227. ; ■ Functions used :
  228. ;
  229. ;    20      +
  230. ;    5       -
  231. ;    18      ==
  232. ;    1       <>
  233. ;    3       <
  234. ;    2       <=
  235. ;    4       >=
  236. ;    17      !
  237. ;    4       &&
  238. ;    6       ||
  239. ;    10      Upper()
  240. ;    2       Chr()
  241. ;    1       Trim()
  242. ;    1       U_Name()
  243. ;    1       StripAtx()
  244. ;    1       Inkey()
  245. ;    2       String()
  246. ;    1       Mask_Ascii()
  247. ;    8       PPEPath()
  248. ;    1       AnsiOn()
  249. ;    1       ScrText()
  250. ;
  251. ;------------------------------------------------------------------------------
  252. ;
  253. ; Analysis flags : No flag
  254. ;
  255. ;------------------------------------------------------------------------------
  256. ;
  257. ; Postprocessing report
  258. ;
  259. ;    2       For/Next
  260. ;    1       While/EndWhile
  261. ;    10      If/Then or If/Then/Else
  262. ;    1       Select Case
  263. ;
  264. ;------------------------------------------------------------------------------
  265. ;                 AEGiS Corp - Break the routines, code against the machines!
  266. ;------------------------------------------------------------------------------
  267.